package com.xunk.scene.mapper;

import com.xunk.scene.domain.SceneConditionEffectivePeriod;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ProjectName: HIM
 * @Package: com.xunk.scene.mapper
 * @ClassName: EffectivePeriodConditionMapper
 * @Author: luanzhiwei
 * @Description: 生效时间段表映射接口
 * @Date: 2021/5/6 11:09
 * @Version: 1.0
 */
public interface SceneConditionEffectivePeriodMapper {
    /**
     * 查询生效时间段
     *
     * @param id 生效时间段ID
     * @return 生效时间段
     */
    SceneConditionEffectivePeriod selectEffectivePeriodConditionById(Long id);

    /**
     * 查询生效时间段,一个场景id只能有一条
     *
     * @param sceneId 生效时间段场景id
     * @return 生效时间段
     */
    SceneConditionEffectivePeriod selectEffectivePeriodConditionBySceneId(Long sceneId);

    /**
     * 查询生效时间段列表
     *
     * @param sceneConditionEffectivePeriod 生效时间段
     * @return 生效时间段集合
     */
    List<SceneConditionEffectivePeriod> selectEffectivePeriodConditionList(SceneConditionEffectivePeriod sceneConditionEffectivePeriod);

    /**
     * 新增生效时间段
     *
     * @param sceneConditionEffectivePeriod 生效时间段
     * @return 结果
     */
    int insertEffectivePeriodCondition(SceneConditionEffectivePeriod sceneConditionEffectivePeriod);

    /**
     * 修改生效时间段
     *
     * @param sceneConditionEffectivePeriod 生效时间段
     * @return 结果
     */
    int updateEffectivePeriodCondition(SceneConditionEffectivePeriod sceneConditionEffectivePeriod);

    /**
     * 删除生效时间段
     *
     * @param id 生效时间段ID
     * @return 结果
     */
    int deleteEffectivePeriodConditionById(Long id);

    /**
     * 逻辑删除生效时间段
     *
     * @param sceneId 生效时间段ID
     * @return 结果
     */
    int hideEffectivePeriodConditionBySceneId(@Param("sceneId") Long sceneId, @Param("userId") String userId);

    /**
     * 批量删除生效时间段
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    int deleteEffectivePeriodConditionByIds(Long[] ids);
}
